package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.Contato;;

public class ContatoDao {
	Connection con;
	
	public ContatoDao() throws SQLException {
		this.con = ConnectionFactory.getConnection();
	}
	
	public void adicionar(Contato contato, String senha) throws SQLException {
		String sql = "insert into Contato(login, senha, nome) values (?, ?, ?)";
		PreparedStatement stmt = con.prepareStatement(sql);
		stmt.setString(1, contato.getLogin());
		stmt.setString(2, senha);
		stmt.setString(3, contato.getNome());
		stmt.execute();
		con.close();
	}
	
	public void atualizar(Contato contato, String senha) throws SQLException {
		String sql = "update Contato set senha = ?, nome = ? where login = ?";
		PreparedStatement stmt = con.prepareStatement(sql);
		stmt.setString(1, senha);
		stmt.setString(2, contato.getNome());
		stmt.setString(3, contato.getLogin());
		stmt.execute();
		con.close();
	}

	public Contato getContato(String login, String senha) {
		Contato contato = null;
		String sql = "select nome from Contato where login = ? and senha = ?"; 
		PreparedStatement stmt;

		try {
			stmt = con.prepareStatement(sql);
			stmt.setString(1, login);
			stmt.setString(2, senha);  
			ResultSet rs = stmt.executeQuery();
			//Se o login e senha nao batem, retorna um Contato nulo
			if (rs.next()){
				//cria um novo Contato de acordo com o que foi pego no banco de dados
				contato = new Contato(rs.getString("nome"), login);
			}
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return contato;
	}
}
